﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Autofac;
using Dapper_Core.BLL.Impl;
using Dapper_Core.BLL.Interface;

namespace Dapper_Core.Web
{
    public class InstanceModule : Autofac.Module
    {
        protected override void Load(ContainerBuilder builder)
        {
            //注册基本类型暴露基本类型，构造方法只能通过基本类型注入，不能通过接口类型注入
            //builder.RegisterType<PlayPianoService>();
            //注册基本类型暴露接口类型，构造方法只能通过接口类型注入，不能通过基本类型注入
            //builder.RegisterType<PlayPianoService>().As<IPlayService>();
            //注册含参的依赖，形参的类型和名字必须完全一致，顺序可颠倒
            builder.RegisterType<DogService>().As<IAnimalService>().WithParameter("type999", "erha999")
                                                                   .WithParameter("type", "erha")
                                                                   .WithParameter("name", "gaga");
        }
    }
}
